package com.sdry.service.zc;

import java.util.List;

import com.sdry.model.jyy.Cut;
import com.sdry.model.workplace.Assemble;
import com.sdry.model.workplace.Centrifugal;
import com.sdry.model.zc.ZcEvaluateEntity;
import com.sdry.model.zc.ZcGasEntity;
import com.sdry.model.zc.ZcLeakHuntingEntity;
import com.sdry.model.zc.ZcProductTracingByOddNumberEntity;
import com.sdry.model.zc.ZcQueryCriteria;

/**
 * 
 * @ClassName:    ZcProductTracingService   
 * @Description:  产品追溯
 * @Author:       zc   
 * @CreateDate:   2018年11月30日 下午4:14:37   
 * @Version:      v1.0
 */
public interface ZcProductTracingService {
	/**
	 * 通过产品条码查询装丝信息
	 * @param code
	 * @return
	 */
	public List<Assemble> selectZsInfoByCode(String productCode);
	/**
	 * 通过产品条码查询装丝信息数量
	 * @param code
	 * @return
	 */
	public int countZsInfoByCode(String productCode);
	/**
	 * 通过产品条码查询浇铸信息
	 * @param code
	 * @return
	 */
	public List<Centrifugal> selectJzInfoByCode(String productCode);
	/**
	 * 通过产品条码查询浇铸信息数量
	 * @param code
	 * @return
	 */
	public int countJzInfoByCode(String productCode);
	/**
	 * 通过产品条码查询切割信息
	 * @param code
	 * @return
	 */
	public List<Cut> selectCutInfoByCode(String productCode);
	/**
	 * 通过产品条码查询切割信息数量
	 * @param code
	 * @return
	 */
	public int countCutInfoByCode(String productCode);
	/**
	 * 通过产品条码查询检漏信息
	 * @param code
	 * @return
	 */
	public List<ZcLeakHuntingEntity> selectLeakHuntingInfoByCode(String productCode);
	/**
	 * 通过产品条码查询检漏信息数量
	 * @param code
	 * @return
	 */
	public int countLeakHuntingInfoByCode(String productCode);
	/**
	 * 通过产品条码查询历史检漏信息
	 * @param code
	 * @return
	 */
	public List<ZcLeakHuntingEntity> selectLeakHuntingInfoLogByCode(String productCode);
	/**
	 * 通过产品条码查询历史检漏信息数量
	 * @param code
	 * @return
	 */
	public int countLeakHuntingInfoLogByCode(String productCode);
	/**
	 * 通过产品条码查询组件评价信息
	 * @param code
	 * @return
	 */
	public List<ZcEvaluateEntity> selectEvaluateInfoByCode(String productCode);
	/**
	 * 通过产品条码查询组件评价信息数量
	 * @param code
	 * @return
	 */
	public int countEvaluateInfoByCode(String productCode);
	/**
	 * 通过产品条码查询历史组件评价信息
	 * @param code
	 * @return
	 */
	public List<ZcEvaluateEntity> selectEvaluateInfoLogByCode(String productCode);
	/**
	 * 通过产品条码查询历史组件评价信息数量
	 * @param code
	 * @return
	 */
	public int countEvaluateInfoLogByCode(String productCode);
	/**
	 * 通过产品条码查询气密性检测信息
	 * @param code
	 * @return
	 */
	public List<ZcGasEntity> selectGasInfoByCode(String productCode);
	/**
	 * 通过产品条码查询气密性检测信息数量
	 * @param code
	 * @return
	 */
	public int countGasInfoByCode(String productCode);
	/**
	 * 通过产品条码查询历史气密性检测信息
	 * @param code
	 * @return
	 */
	public List<ZcGasEntity> selectGasInfoLogByCode(String productCode);
	/**
	 * 通过产品条码查询历史气密性检测信息数量
	 * @param code
	 * @return
	 */
	public int countGasInfoLogByCode(String productCode);
	/**
	 * 通过排产单号追溯
	 * @param zcQueryCriteria
	 * @return
	 */
	public ZcProductTracingByOddNumberEntity selectProductTracingByOddNumber(ZcQueryCriteria zcQueryCriteria);
}
